/**
 * 项目统一配置
 */
export default {
  // 是否使用图片验证码
  imageVerify: false,
  // 是否开启单点登录
  ssoFlag: false,
  // 是否开启多租户
  saasFlag: false,
  // 页签可重复打开的路由
  repeatableTabs: ['/system/user/info'],
  // 路由白名单(不需要登录的)
  whiteList: ['/login', '/forget', '/sso'],
  // 不显示全局页脚的路由地址
  hideFooters: ['/system/dictionary', '/system/organization'],
  // 不显示侧边栏的路由地址
  hideSidebars: [],
  // 菜单数据接口
  menuUrl: '/sysMenu/getLeftMenusAntdv',
  // 自定义解析接口菜单数据
  parseMenu: null,
  // 自定义解析接口菜单每一个数据格式
  parseMenuItem: null,
  // 直接指定菜单数据
  menus: null,
  // 用户信息接口
  userUrl: '/getCurrentLoginUserInfo',
  // 自定义解析接口用户信息，无需转化，接口已经返回正确格式
  parseUser(res) {
    return res;
  },
  // token传递的header名称
  tokenHeaderName: 'Authorization',
  // token存储的名称
  tokenStoreName: 'access_token',
  // 获取缓存的token
  takeToken() {
    let token = localStorage.getItem(this.tokenStoreName);
    if (!token) {
      token = sessionStorage.getItem(this.tokenStoreName);
    }
    return token;
  },
  // 缓存token
  cacheToken(token, remember) {
    localStorage.removeItem(this.tokenStoreName);
    sessionStorage.removeItem(this.tokenStoreName);
    if (token) {
      if (remember) {
        localStorage.setItem(this.tokenStoreName, token);
      } else {
        sessionStorage.setItem(this.tokenStoreName, token);
      }
    }
  },
  // 用户信息存储的名称
  userStoreName: 'user',
  // 获取缓存的用户信息
  takeUser() {
    try {
      return JSON.parse(localStorage.getItem(this.userStoreName)) || {};
    } catch (e) {
      console.error(e);
    }
    return {};
  },
  // 缓存用户信息
  cacheUser(user) {
    if (user) {
      localStorage.setItem(this.userStoreName, JSON.stringify(user));
    } else {
      localStorage.removeItem(this.userStoreName);
    }
  },
  // 主题配置存储的名称
  themeStoreName: 'theme',
  // 首页tab显示标题, null会根据菜单自动获取
  homeTitle: '主页',
  // 首页路径, null会自动获取
  homePath: null,
  // 顶栏是否显示主题设置按钮
  showSetting: true,
  // 开启多页签是否缓存组件
  tabKeepAlive: true,
  // 侧边栏风格: 0亮色, 1暗色
  sideStyle: 1,
  // 顶栏风格: 0亮色, 1暗色, 2主色
  headStyle: 0,
  // 标签页风格: 0默认, 1圆点, 2卡片
  tabStyle: 0,
  // 布局风格: 0默认, 1顶部菜单风格, 2混合菜单风格
  layoutStyle: 2,
  // 侧边栏菜单风格: default(默认), mix(双排菜单)
  sideMenuStyle: 'default',
  // 是否固定侧栏
  fixedSidebar: true,
  // 是否固定顶栏
  fixedHeader: true,
  // 是否固定主体
  fixedBody: false,
  // logo是否自适应宽度
  logoAutoSize: false,
  // 内容区域宽度是否铺满
  bodyFull: true,
  // 是否开启多标签
  showTabs: true,
  // 侧栏是否多彩图标
  colorfulIcon: false,
  // 侧边栏是否只保持一个子菜单展开
  sideUniqueOpen: true,
  // 是否开启页脚
  showFooter: true,
  // 是否是色弱模式
  weakMode: false,
  // 是否是暗黑模式
  darkMode: false,
  // 默认主题色
  color: null,
  // 消息类型常量
  websocketMessageType: {
    // 服务端发过来的消息类型
    server: {
      // 系统通知消息类型
      SYS_NOTICE_MSG_TYPE: '100001',
      // 授权用户使用websocket
      SYS_REPLY_MSG_TYPE: '100002'
    },
    // 发送给服务器的消息类型
    client: {
      // 创建websocket连接时候的鉴权，发送token
      USER_CONNECTION_AUTHENTICATION: '200000'
    }
  }
};
